The Internet may be described in a simplified manner as a collection of computer systems (e.g., clients and servers) that are interconnected by public/private networks (e.g., transmission lines and routers) to enable the transfer of information among them, as illustrated in FIG. 1. These computer systems are often modeled by their function: client-server. In the client-server model, communication generally takes the form of a request from the client to the server asking for an operation to be performed (e.g., request for data). The server performs the work and sends a reply. A client may then retrieve and display the requested information. However, a computer system may operate as both a server and a client.
Client-server systems communicate with each other using a variety of network protocols, such as Transmission Control Protocol/Internet Protocol (TCP/IP) and Integrated Packet Exchange (IPX), and a variety of application protocols, such as HyperText Transfer Protocol (HTTP) and File Transfer Protocol (FTP). A user typically views the Internet as a collection of web pages that are typically located on a server at a network site. Each web page may contain text, embedded components such as graphic image files, and address links to other pages referred to as a Uniform Resource Locator (URL). Web pages are viewed using a program called a browser that resides on a user's client computer. The browser retrieves information from a requested page on a server, interprets the data and formatting commands, and displays the text and special accessory files, such as images, on the user's client system.
Increased traffic on the Internet has resulted in performance problems with sites (systems and connections), such as reduced download speeds during periods of heavy loads (a measure of system activity). Businesses are faced with the increasing burden of monitoring and testing the performance of their sites on a real-time basis. For example, a business may rely on its on-line site to sell a product. If the business site, or a portion thereof (e.g., a web page or server), is not operating properly, orders for a product may not be able to be placed. This may result in a business suffering financial consequences. As such, a business has an interest to know if and when any portion of its site ceases to operate properly from its customer's point of view.
The performance of a site and its computer systems may be measured in different ways. One measure of performance is the accessibility of the computer system through a backbone used to connect the computer system with an end user. A backbone, also referred to as an Autonomous System (AS) network, is a set of transmission lines and hardware that a business site may be connected to for long distance communication. Another measure of performance is the amount of time it takes to retrieve and display the information to the user, referred to as download speed.
One way to monitor and analyze a business site's performance is to measure performance on the server side (the computer system providing the pages requested by the user). One problem with such a method is that the performance experienced by a user may not be readily determined from measurements made from the server. For example, the speed with which a server delivers requested information may not correlate with the speed experienced on the client side by a user due to, for example, congested or downed transmission lines.
Another way to monitor and analyze a site's performance is to perform client side measurements using an actual user's client system. For example, a user's client browser may be configured to record download speeds of particular transactions. Such performance information is stored on a client's system and then obtained from the user's system. One problem with such a method is that the performance information collected is based on user specific factors that may be uncontrollable and may not be common to other users. For example, a user running several simultaneous, high bandwidth downloads will typically experience slower performance than a user on an identical client system with an identical browser who is running a single low bandwidth download.
Another problem with client side measurements is that the collected performance information may be limited to only measuring the total load time of a web page and throughput (bytes of data sent over an end-to-end transaction time). The condition of the network connection to the client may not be included in the collected information. As such, allowances for these other factors may not be made when analyzing performance.
Moreover, strictly load time and throughput measurements do not reflect the quality of the downloaded information. For example, if a server is non-operational, then requests to a web page on the server may return an error message response (e.g., “can't process request”) very quickly. This would appear to be a period of exceptionally good download performance when, in fact, no content from the site was downloaded to the user. Therefore, such a method may not provide an accurate or detailed analysis of a site's performance that reflects a customer's true experience.
Furthermore, prior methods of web site analysis use browsers that are very code intensive and operating systems that may not be very reliable. Such platforms may not be very scalable or robust and, thus, may not be desirable.